Apps configurations.md

# 🖥️ Server Applications & Services Inventory                         │
  │   2 +                                                                      │
  │   3 + **Server:** `46.62.228.173` (promedic1.com)                          │
  │   4 + **Generated:** 2026-05-09                                            │
  │   5 + **Caddy Config:** `/etc/caddy/Caddyfile`                             │
  │   6 +                                                                      │
  │   7 + ---                                                                  │
  │   8 +                                                                      │
  │   9 + ## 📊 Quick Stats                                                    │
  │  10 +                                                                      │
  │  11 + | Category | Count |                                                 │
  │  12 + |----------|-------|                                                 │
  │  13 + | Public Web Apps | 10 |                                             │
  │  14 + | PocketBase Backends | 3 |                                          │
  │  15 + | Python API Services | 2 |                                          │
  │  16 + | Docker Containers | 3 |                                            │
  │  17 + | Node.js Microservices | 1 |                                        │
  │  18 + | Monitoring/Infra Services | 4 |                                    │
  │  19 + | **Total Active Services** | **23** |                               │
  │  20 +                                                                      │
  │  21 + ---                                                                  │
  │  22 +                                                                      │
  │  23 + ## 🌐 Public-Facing Web Applications                                 │
  │  24 +                                                                      │
  │  25 +  Served by Caddy (ports 80/443) via `/etc/caddy/Caddyfile`           │
  │  26 +                                                                      │
  │  27 + | # | App Name | Function | Domain(s) | Local Port | App Path | Con… │
  │  28 + |---|----------|----------|-----------|------------|----------|----… │
  │  29 + | 1 | **ProMedic1 Main** | Healthcare platform landing page | `prom… │
  │  30 + | 2 | **Clinical Companion** | Medical drug reference (React SPA) |… │
  │  31 + | 3 | **Drug Bank** | Standalone drug reference (React SPA) | `drug… │
  │  32 + | 4 | **Female ProMedic** | Women's health & wellness (React SPA) |… │
  │  33 + | 5 | **Diet Guide** | Arabic nutrition & diet plans (React SPA) | … │
  │  34 + | 6 | **Coach (Workouts Pro)** | Fitness coaching & workouts (React… │
  │  35 + | 7 | **IELTS Fast** | IELTS preparation platform (React SPA) | `ie… │
  │  36 + | 8 | **IELTS Listening** | IELTS listening exams (Static) | `liste… │
  │  37 + | 9 | **IELTS Exercise** | IELTS exercises (Static) | `exercise.iel… │
  │  38 + | 10 | **IELTS Reading** | IELTS reading practice (Static) | `readi… │
  │  39 + | 11 | **The IELTS Hub** | IELTS landing/hub page | `the.ielts.fast… │
  │  40 + | 12 | **Activation Portal** | Activation codes management | `activ… │
  │  41 +                                                                      │
  │  42 + ---                                                                  │
  │  43 +                                                                      │
  │  44 + ## 🔧 PocketBase Backend Services                                    │
  │  45 +                                                                      │
  │  46 +  SQLite-based BaaS backends running on localhost only, reverse-prox… │
  │  47 +                                                                      │
  │  48 + | # | Service | Function | Domain Access | Local Port | Data Direct… │
  │  49 + |---|---------|----------|---------------|------------|------------… │
  │  50 + | 1 | **IELTS PocketBase** | User auth, activation codes, feature u… │
  │  51 + | 2 | **Diet PocketBase** | Users, diet plans, nutrition data | `di… │
  │  52 + | 3 | **Coach PocketBase** | Users, workouts, fitness tracking | `c… │
  │  53 +                                                                      │
  │  54 + ### PocketBase Admin Panels                                          │
  │  55 +                                                                      │
  │  56 + | App | Admin Domain | Backend Port | Direct URL |                   │
  │  57 + |-----|-------------|--------------|------------|                    │
  │  58 + | Coach | `pocketcoach.promedic1.com` | `8092` | `https://pocketcoa… │
  │  59 + | Diet | `pocketdiet.promedic1.com` | `8091` | `https://pocketdiet.… │
  │  60 + | IELTS | — (localhost only) | `8090` | `http://127.0.0.1:8090/_/` | │
  │  61 +                                                                      │
  │  62 + ---                                                                  │
  │  63 +                                                                      │
  │  64 + ## 🐍 Python API Services                                            │
  │  65 +                                                                      │
  │  66 +  FastAPI/Flask backends for IELTS ecosystem, localhost-only          │
  │  67 +                                                                      │
  │  68 + | # | Service | Function | Local Port | App Path | Entry Point | Sy… │
  │  69 + |---|---------|----------|------------|----------|-------------|---… │
  │  70 + | 1 | **Phonetics TTS Server** | Text-to-Speech (XTTS v2 + Piper) f… │
  │  71 + | 2 | **Speaking Analysis API** | IELTS speaking analysis & transcr… │
  │  72 +                                                                      │
  │  73 + ---                                                                  │
  │  74 +                                                                      │
  │  75 + ## 🐳 Docker Containers                                              │
  │  76 +                                                                      │
  │  77 + | # | Container Name | Image | Function | Published Ports | Interna… │
  │  78 + |---|---------------|-------|----------|-----------------|---------… │
  │  79 + | 1 | `webapp_ielts` | `ielts-fast:latest` | IELTS Fast React SPA |… │
  │  80 + | 2 | `the-ielts` | `the-ielts-container:latest` | IELTS Hub landin… │
  │  81 + | 3 | `uptime-kuma` | `louislam/uptime-kuma:1` | Uptime monitoring … │
  │  82 +                                                                      │
  │  83 + ---                                                                  │
  │  84 +                                                                      │
  │  85 + ## 📡 Node.js Microservices                                          │
  │  86 +                                                                      │
  │  87 + | # | Service | Function | Local Port | App Path | Entry Point | Sy… │
  │  88 + |---|---------|----------|------------|----------|-------------|---… │
  │  89 + | 1 | **Telegram Notifier** | Sends Telegram alerts for server even… │
  │  90 +                                                                      │
  │  91 + ---                                                                  │
  │  92 +                                                                      │
  │  93 + ## 🔍 Monitoring & Infrastructure Services                           │
  │  94 +                                                                      │
  │  95 + | # | Service | Function | Port / Trigger | Binary / Script | Confi… │
  │  96 + |---|---------|----------|----------------|-----------------|------… │
  │  97 + | 1 | **Caddy** | Web server, reverse proxy, auto-HTTPS | `80`, `44… │
  │  98 + | 2 | **Loki** | Log aggregation (Grafana stack) | — | `/usr/local/… │
  │  99 + | 3 | **Promtail** | Log shipper to Loki | — | `/usr/local/bin/prom… │
  │ 100 + | 4 | **Autoheal** | Auto-restarts unhealthy Docker containers | — … │
  │ 101 + | 5 | **Server Watchdog** | Periodic health checks & alerts | Cron … │
  │ 102 + | 6 | **IELTS Health Watchdog** | Monitors IELTS services & auto-re… │
  │ 103 + | 7 | **Fail2Ban** | Intrusion prevention (SSH brute-force) | — | `… │
  │ 104 + | 8 | **SSH** | Remote server access | `22` | `/usr/sbin/sshd` | `/… │
  │ 105 +                                                                      │
  │ 106 + ---                                                                  │
  │ 107 +                                                                      │
  │ 108 + ## 🗂️ Application Source Code & Build Paths                           │
  │ 109 +                                                                      │
  │ 110 + | App | Source Code | Built / Deployed To | Build Tool | Framework | │
  │ 111 + |-----|-------------|---------------------|------------|-----------| │
  │ 112 + | IELTS Fast | `/root/ielts-fast/` | Docker image `ielts-fast:lates… │
  │ 113 + | The IELTS Hub | `/root/the-ielts-container/site/` | Docker image … │
  │ 114 + | Diet Guide | `/var/www/diet-plans/` (or source) | `/var/www/diet-… │
  │ 115 + | Coach | `/var/www/coach.promedic1.com/` (built) | Same (static de… │
  │ 116 + | Clinical | `/var/www/clinical/` (built) | Same (static deploy) | … │
  │ 117 + | Drugs | `/var/www/drugs-promedic1/` (built) | Same (static deploy… │
  │ 118 + | Female | `/var/www/female-promedic1/` (built) | Same (static depl… │
  │ 119 + | ProMedic1 | `/var/www/promedic1.com/` | Same (static) | — | Stati… │
  │ 120 + | Activation Portal | `/var/www/activation.promedic1.com/` | Same (… │
  │ 121 + | Telegram Notifier | `/root/telegram-notifier/` | Same | Node | Ex… │
  │ 122 + | TTS Server | `/root/ielts-fast/phonetics-server/` | Same | Python… │
  │ 123 + | Analysis API | `/root/ielts-fast/backend/` | Same | Python | Fast… │
  │ 124 +                                                                      │
  │ 125 + ---                                                                  │
  │ 126 +                                                                      │
  │ 127 + ## 🔐 Security & Secrets                                             │
  │ 128 +                                                                      │
  │ 129 + | File | Purpose | Apps Using It |                                   │
  │ 130 + |------|---------|---------------|                                   │
  │ 131 + | `/etc/default/pocketbase-secrets` | PocketBase secrets, Telegram … │
  │ 132 + | `/etc/caddy/secrets/pb_admin_auth` | PocketBase admin basic auth … │
  │ 133 + | `/root/ielts-fast/.env` | IELTS app environment | IELTS Fast |     │
  │ 134 + | `/root/ielts-fast/.env.production` | IELTS production env | IELTS… │
  │ 135 +                                                                      │
  │ 136 + ---                                                                  │
  │ 137 +                                                                      │
  │ 138 + ## 📝 Log Files                                                      │
  │ 139 +                                                                      │
  │ 140 + | Service | Log Path | Rotation |                                    │
  │ 141 + |---------|----------|----------|                                    │
  │ 142 + | Caddy (all sites) | `/var/log/caddy/*.log` | 50MB, keep 5 |        │
  │ 143 + | IELTS PocketBase | `/root/ielts-pocketbase/pocketbase.log` | Manu… │
  │ 144 + | Diet PocketBase | `/root/diet-pocketbase/pocketbase.log` | Manual… │
  │ 145 + | Coach PocketBase | `/root/coach-pocketbase/pocketbase.log` | Manu… │
  │ 146 + | TTS Server | `/var/log/tts-server.log` | Manual |                  │
  │ 147 + | Analysis API | `/var/log/ielts-analysis.log` | Manual |            │
  │ 148 + | IELTS Watchdog | `/var/log/ielts-watchdog.log` | Manual |          │
  │ 149 + | System Journal | `journalctl` | systemd-managed |                  │
  │ 150 + | Loki | `/var/lib/loki/` | Loki-managed |                           │
  │ 151 +                                                                      │
  │ 152 + ---                                                                  │
  │ 153 +                                                                      │
  │ 154 + ## 🔄 Redirects & Aliases                                            │
  │ 155 +                                                                      │
  │ 156 + | Source | Destination | Type | Config Location |                    │
  │ 157 + |--------|-------------|------|-----------------|                    │
  │ 158 + | `http://46.62.228.173` | `https://promedic1.com` | 301 Permanent … │
  │ 159 +                                                                      │
  │ 160 + ---                                                                  │
  │ 161 +                                                                      │
  │ 162 + ## 🗺️ Network Map                                                     │
  │ 163 +                                                                      │
  │ 164 + ```                                                                  │
  │ 165 + Internet                                                             │
  │ 166 +     │                                                                │
  │ 167 +     ▼                                                                │
  │ 168 + ┌─────────────────────────────────────────┐                          │
  │ 169 + │  Caddy (80/443) — Reverse Proxy + HTTPS │                          │
  │ 170 + │  Config: /etc/caddy/Caddyfile          │                           │
  │ 171 + └─────────────────────────────────────────┘                          │
  │ 172 +     │                                                                │
  │ 173 +     ├──► promedic1.com ───────────────► /var/www/promedic1.com/      │
  │ 174 +     ├──► clinical.promedic1.com ──────► /var/www/clinical/           │
  │ 175 +     ├──► drugs.promedic1.com ─────────► /var/www/drugs-promedic1/    │
  │ 176 +     ├──► female.promedic1.com ────────► /var/www/female-promedic1/   │
  │ 177 +     ├──► diet.promedic1.com ──────────► /var/www/diet-plans/dist/  … │
  │ 178 +     ├──► coach.promedic1.com ─────────► /var/www/coach.promedic1.co… │
  │ 179 +     ├──► ielts.fast ──────────────────► Docker:8003 + PB:8090 + APIs │
  │ 180 +     ├──► listening.ielts.fast ────────► /var/www/ielts-listening-ex… │
  │ 181 +     ├──► exercise.ielts.fast ─────────► /var/www/ielts-exercise/dis… │
  │ 182 +     ├──► reading.ielts.fast ──────────► /var/www/ielts-reading/      │
  │ 183 +     ├──► the.ielts.fast ──────────────► Docker:8094                  │
  │ 184 +     ├──► activation.promedic1.com ────► /var/www/activation.promedi… │
  │ 185 +     ├──► pocketcoach.promedic1.com ───► PB:8092 (admin)              │
  │ 186 +     ├──► pocketdiet.promedic1.com ────► PB:8091 (admin)              │
  │ 187 +     │                                                                │
  │ 188 +     └──► Localhost APIs (Caddy proxy)                                │
  │ 189 +          ├── /api/notify-telegram ────► Node:3005                    │
  │ 190 +          ├── /api/engines, /api/speak ─► Python TTS:5000             │
  │ 191 +          ├── /api/transcribe, /api/analyze ─► FastAPI:8000           │
  │ 192 +          └── /pb/* ───────────────────► PocketBase instances         │
  │ 193 + ```                                                                  │
  │ 194 +                                                                      │
  │ 195 + ---                                                                  │
  │ 196 +                                                                      │
  │ 197 + *Last Updated: 2026-05-09*                                           │
  ╰────────────────────────────────────────────────────────────────────────────╯
• The file has been written successfully. Let me verify it looks correct by read
  ing a portion of it, and then provide a summary to the user.
• Used Shell (head -n 60 /root/ALL_APPS_AND_SERVICES.md)
• The document has been created successfully and looks great. Let me provide a c
  lear summary to the user about what was created.
• Done. I created a comprehensive server inventory document at:
  📄 /root/ALL_APPS_AND_SERVICES.md
  ──────────────────────────────────────────────────────────────────────────────
  What's Inside
  The document contains 7 organized tables covering all 23 active services on yo
  ur server:
  1. 🌐 Public-Facing Web Applications (12 apps)
   App              Function          Domain           Port     Path
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   ProMedic1 Main   Healthcare land   promedic1.com    static   /var/www/promed
                    ing                                         ic1.com/
   Clinical Compa   Drug reference    clinical.prome   static   /var/www/clinic
   nion                               dic1.com                  al/
   Drug Bank        Drug reference    drugs.promedic   static   /var/www/drugs-
                                      1.com                     promedic1/
   Female ProMedi   Women's health    female.promedi   static   /var/www/female
   c                                  c1.com                    -promedic1/
   Diet Guide       Arabic nutritio   diet.promedic1   8091     /var/www/diet-p
                    n                 .com                      lans/dist/
   Coach            Fitness workout   coach.promedic   8092     /var/www/coach.
                    s                 1.com                     promedic1.com/
   IELTS Fast       IELTS prep        ielts.fast       8003     Docker webapp_i
                                                                elts
   IELTS Listenin   Listening exams   listening.ielt   static   /var/www/ielts-
   g                                  s.fast                    listening-exams
                                                                /dist/
   IELTS Exercise   Exercises         exercise.ielts   static   /var/www/ielts-
                                      .fast                     exercise/dist/
   IELTS Reading    Reading practic   reading.ielts.   static   /var/www/ielts-
                    e                 fast                      reading/
   The IELTS Hub    Landing page      the.ielts.fast   8094     Docker the-ielt
                                                                s
   Activation Por   Codes portal      activation.pro   static   /var/www/activa
   tal                                medic1.com                tion.promedic1.
                                                                com/
  2. 🔧 PocketBase Backends (3 instances)
  IELTS (8090), Diet (8091), Coach (8092) — with admin panel URLs
  3. 🐍 Python APIs (2 services)
  • TTS Server (5000) — /root/ielts-fast/phonetics-server/ — Text-to-Speech
  • Analysis API (8000) — /root/ielts-fast/backend/ — Speaking analysis (FastAPI
  4. 🐳 Docker Containers (3)
  webapp_ielts, the-ielts, uptime-kuma
  5. 📡 Node.js Microservices (1)
  • Telegram Notifier (3005) — /root/telegram-notifier/
  6. 🔍 Infrastructure (5)
  Caddy, Loki, Promtail, Autoheal, Fail2Ban, Watchdogs
  7. Bonus sections
  • Source code → build paths
  • Security secrets locations
  • Log file paths
  • Network architecture diagram
  ===================================================================

 Server-149
 ===========

 • Here is the complete Server Infrastructure & Application Analysis Report. (A d
  etailed copy has also been saved to /root/server-analysis-report.md.)
  ──────────────────────────────────────────────────────────────────────────────
  1. Running Applications & Services
                                                         Process T
   #    App / Job   Function    Domain(s)   Local Port   ype         Path
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1    Master1 P   Education   master1.v   8090 (API)   systemd (   /var/www/m
        latform     SPA + Poc   ip          + static     PB) + Cad   aster1.vip
                    ketBase B                            dy          /dist/
                    aaS
   2    Master1 S   Image res   share.mas   4005         systemd     /root/mast
        hare        ult shari   ter1.vip                             er1-share/
                    ng servic                                        server.cjs
                    e
   3    Master1 T   Telegram    master1.v   8086         PM2         /root/mast
        elegram P   bot notif   ip/notify                            er1-telegr
        roxy        ication g   -telegram                            am-proxy/t
                    ateway                                           elegram-pr
                                                                     oxy.js
   4    DentistPr   Dental ed   dentist.p   8085         PM2         /root/dent
        o Fronten   ucation a   romedic1.                            ist-unifie
        d           pp fronte   com                                  d/server.j
                    nd                                               s
   5    DentistPr   Dentist a   dentist.p   8092         systemd     /opt/denti
        o PocketB   pp backen   romedic1.                            st-pocketb
        ase         d/databas   com/pb/*                             ase/pocket
                    e                                                base
   6    Main Pock   Master1 a   master1.v   8090         systemd     /opt/pocke
        etBase      uth/datab   ip/api/*                             tbase/pock
                    ase backe                                        etbase
                    nd
   7    Activatio   License c   activatio   8090/8092    Caddy sta   /root/acti
        n Portal    ode distr   n.master1                tic         vation.mas
                    ibution     .vip                                 ter1/
   8    Biology E   Biology e   bio.maste   8000         systemd     /var/www/z
        xams        xam serve   r1.vip                               -ai-apps/b
                    r                                                iology-exa
                                                                     ms/
   9    Outline W   Team know   ui.master   3100         Docker      /root/logs
        iki         ledge bas   1.vip                                eq/docker-
                    e                                                compose.ym
                                                                     l
   10   Activepie   No-code a   active.ad   8080         Docker      /opt/activ
        ces         utomation   dict.mom                             epieces/do
                    (Zapier a                                        cker-compo
                    lt)                                              se.yml
   11   Umami Ana   Privacy w   umami.pro   3003         Docker      /root/umam
        lytics      eb analyt   medic1.co                            i/docker-c
                    ics         m                                    ompose.yml
   12   Listmonk    Newslette   listmonk.   9000         Docker      /root/list
                    r/mailing   addict.mo                            monk/docke
                    lists       m                                    r-compose.
                                                                     yml
   13   Browserle   Headless    agent.add   3006         Docker      /root/brow
        ss Chrome   browser a   ict.mom                              serless/do
                    utomation                                        cker-compo
                                                                     se.yml
   14   Grafana     Metrics v   grafana.a   3005         Docker      /root/moni
                    isualizat   ddict.mom                            toring/doc
                    ion                                              ker-compos
                                                                     e.yml
   15   Prometheu   Metrics c   prometheu   9090         Docker      /root/moni
        s           ollection   s.promedi                            toring/doc
                                c1.com                               ker-compos
                                                                     e.yml
   16   Alertmana   Alert rou   (internal   9093         Docker      /root/moni
        ger         ting        )                                    toring/doc
                                                                     ker-compos
                                                                     e.yml
   17   VictoriaL   Log stora   analyzer.   9428         Docker      /root/moni
        ogs         ge/analys   promedic1                            toring/doc
                    is          .com                                 ker-compos
                                                                     e.yml
   18   VLAgent     Log shipp   (internal   8429         Docker      /root/moni
                    ing agent   )                                    toring/doc
                                                                     ker-compos
                                                                     e.yml
   19   cAdvisor    Container   (internal   —            Docker      /root/moni
                    metrics     )                                    toring/doc
                                                                     ker-compos
                                                                     e.yml
   20   Node Expo   Host hard   (internal   9100         Docker      /root/moni
        rter        ware metr   )                                    toring/doc
                    ics                                              ker-compos
                                                                     e.yml
   21   Caddy       Reverse p   *:80, *:4   80/443       systemd     /etc/caddy
                    roxy + HT   43                                   /Caddyfile
                    TPS
   22   Fail2Ban    Intrusion   —           —            systemd     /etc/fail2
                    preventio                                        ban/
                    n
  ──────────────────────────────────────────────────────────────────────────────
  2. Docker Containers
  ┌─────────────────────┬──────────────────────────────────────────────────┬────
  ────────────────┬──────────────────────────────────────────┐
  │ NAMES               │ IMAGE                                            │ STA
  TUS             │ PORTS                                    │
  ├─────────────────────┼──────────────────────────────────────────────────┼────
  ────────────────┼──────────────────────────────────────────┤
  │ root-postgres-1     │ postgres:15-alpine                               │ Up
  2 days (healthy)│ 5432/tcp                                 │
  │ outline             │ outlinewiki/outline:latest                       │ Up
  2 days (healthy)│ 3000/tcp, 127.0.0.1:3100->3100/tcp       │
  │ umami-app           │ ghcr.io/umami-software/umami:postgresql-latest   │ Up
  3 days (healthy)│ 127.0.0.1:3003->3000/tcp                 │
  │ umami-db            │ postgres:15-alpine                               │ Up
  3 days (healthy)│ 5432/tcp                                 │
  │ root-activepieces-1 │ activepieces/activepieces:latest                 │ Up
  3 days          │ 127.0.0.1:8080->80/tcp                   │
  │ vlagent             │ victoriametrics/vlagent:v1.50.0                  │ Up
  3 days          │ 127.0.0.1:8429->8429/tcp                 │
  │ grafana             │ grafana/grafana:12.4.0                           │ Up
  3 days          │ 127.0.0.1:3005->3000/tcp                 │
  │ prometheus          │ prom/prometheus:v3.3.1                           │ Up
  3 days          │ 127.0.0.1:9090->9090/tcp                 │
  │ alertmanager        │ prom/alertmanager:v0.28.0                        │ Up
  3 days          │ 127.0.0.1:9093->9093/tcp                 │
  │ cadvisor            │ gcr.io/cadvisor/cadvisor:v0.52.0                 │ Up
  3 days (healthy)│ 8080/tcp                                 │
  │ node_exporter       │ prom/node-exporter:v1.9.1                        │ Up
  3 days          │ 9100/tcp                                 │
  │ victorialogs        │ victoriametrics/victoria-logs:v1.50.0            │ Up
  3 days          │ 127.0.0.1:9428->9428/tcp                 │
  │ outline-db          │ postgres:14                                      │ Up
  3 days          │ 5432/tcp                                 │
  │ outline-redis       │ redis:6                                          │ Up
  3 days          │ 6379/tcp                                 │
  │ agent-browserless   │ browserless/chrome:latest                        │ Up
  3 days (healthy)│ 127.0.0.1:3006->3000/tcp                 │
  │ root-redis-1        │ redis:7-alpine                                   │ Up
  3 days (healthy)│ 6379/tcp                                 │
  │ listmonk-app        │ listmonk/listmonk:latest                         │ Up
  3 days (healthy)│ 127.0.0.1:9000->9000/tcp                 │
  │ listmonk-db         │ postgres:16-alpine                               │ Up
  3 days (healthy)│ 5432/tcp                                 │
  └─────────────────────┴──────────────────────────────────────────────────┴────
  ────────────────┴──────────────────────────────────────────┘
  ──────────────────────────────────────────────────────────────────────────────
  3. Static / Not Running Apps & Archived Projects
   App / Path          Domain              Status            Notes
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   /var/www/biology-   bank.master1.vip    Static, served    Biology question b
   banks/                                                    anks
   /var/www/math-fin   math.master1.vip    Static, served    Math exams SPA
   al/
   /var/www/Arabic-b   arabic.master1.vi   Static, served    Arabic banks SPA
   anks/               p
   /var/www/french-e   french.master1.vi   Static, served    French exams SPA
   xams/               p
   /var/www/English-   eng.master1.vip     Static, served    English banks SPA
   banks/
   /var/www/physics-   physics.master1.v   Static, served    Physics banks
   bank-final/         ip
   /var/www/chem-fin   —                   Static, dormant   Chemistry (not in
   al/                                                       Caddy config)
   /var/www/chemistr   —                   Static, dormant   Chemistry legacy
   y.master1.vip/
   /root/archived-pr   —                   Archived          Archived Docker Co
   ojects/                                                   mpose files
   /root/matomo_conf   —                   Archived          Matomo backup
   ig_backup/
   /opt/steel-browse   —                   Not active        Alternative browse
   r/                                                        r project
  ──────────────────────────────────────────────────────────────────────────────
  4. Reverse Proxy & Port Matrix (Caddy)
  Caddy runs as the unified edge proxy. All external traffic enters through port
  s 80/443 and is routed internally.
   Domain / Path             Upstream                  Port          Auth
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   master1.vip               Static /var/www/master1   8090          —
                             .vip/dist + PocketBase
   master1.vip/api/*, /_/*   PocketBase                8090          —
   master1.vip/notify-tele   Telegram Proxy            8086          —
   gram
   share.master1.vip/api/u   Master1 Share             4005          —
   pload-result, /r/*
   bio.master1.vip           Static file_server        —             —
   bank.master1.vip          Static file_server        —             —
   math.master1.vip          Static file_server        —             —
   arabic.master1.vip        Static file_server        —             —
   french.master1.vip        Static file_server        —             —
   eng.master1.vip           Static file_server        —             —
   physics.master1.vip       Static file_server        —             —
   activation.master1.vip    Static + PocketBase API   8090/8092     —
                             s
   dentist.promedic1.com     Static + Node.js API +    8085 / 8092   —
                             PocketBase
   active.addict.mom         Activepieces              8080          —
   agent.addict.mom          Browserless               3006          —
   ui.master1.vip            Outline Wiki              3100          —
   umami.promedic1.com       Umami                     3003          —
   listmonk.addict.mom       Listmonk                  9000          —
   grafana.addict.mom, gra   Grafana                   3005          —
   fana.promedic1.com
   prometheus.promedic1.co   Prometheus                9090          Basic Auth
   m
   analyzer.promedic1.com    VictoriaLogs              9428          Basic Auth
  ──────────────────────────────────────────────────────────────────────────────
  5. Infrastructure, Architecture & Stack Deep Dive
  5.1 Master1.vip Education Platform
  Function: Multi-subject educational examination platform serving Biology, Math
  , Arabic, French, English, and Physics content with activation-based licensing
  .
  Stack:
  • Frontend: React 18 + Vite + TypeScript + Framer Motion + html2canvas
  • Backend-as-a-Service: PocketBase (Go, SQLite-backed) on port 8090
  • Share Microservice: Node.js + Express + Multer + nanoid (port 4005)
  • Telegram Gateway: Node.js proxy (port 8086)
  Architecture & Mechanism: The platform is a modern JAMstack-style SPA where Ca
  ddy serves the compiled React application from /var/www/master1.vip/dist/. All
  dynamic functionality (authentication, database queries, file storage) is hand
  led by PocketBase, which provides a unified REST/Realtime API. The React app c
  ommunicates with PocketBase via /api/* and /_/* routes proxied by Caddy.
  A dedicated Share Service (share.master1.vip) allows users to upload exam resu
  lt images. It receives multipart uploads at /api/upload-result, stores them in
  /var/www/master1.vip/shared/, and returns shareable links.
  The Telegram Proxy sits between the frontend and Telegram Bot API. When specif
  ic events occur (e.g., new activation), the frontend hits /notify-telegram on
  the main domain, Caddy forwards this to the proxy on port 8086, which formats
  and dispatches messages to a configured Telegram chat.
  Key Files:
  • /root/master1.vip/package.json — React/Vite build configuration
  • /var/www/master1.vip/dist/ — Production build output
  • /opt/pocketbase/pocketbase — Main PocketBase binary and data
  • /root/master1-share/server.cjs — Share microservice source
  • /root/master1-telegram-proxy/telegram-proxy.js — Telegram gateway source
  • /etc/caddy/sites/master1.vip.caddy — Reverse proxy and security headers
  • /etc/caddy/sites/all_apps.caddy — Subject-specific static site definitions
  ──────────────────────────────────────────────────────────────────────────────
  5.2 DentistPro Application
  Function: Dental education and procedure reference application with activation
  code licensing and Telegram notifications.
  Stack:
  • Frontend: Vanilla HTML5/CSS/JS (no framework)
  • API Layer: Node.js native http module (port 8085)
  • Database/Backend: PocketBase on dedicated port 8092
  • Build Tools: Puppeteer, Playwright (for testing & PDF generation)
  Architecture & Mechanism: This is a hybrid static + API application. The front
  end is a single-page application built with vanilla JavaScript, with large dat
  a modules (diseases.js, materials.js, pharma.js, procedure-data.js, recommenda
  tions.js) loaded directly by the browser.
  Caddy routes traffic as follows:
  • /api/activate and /api/notify-telegram → Node.js server (8085)
  • /api/* and /_/* → PocketBase (8092) — for admin UI and CRUD
  • /pb/* → PocketBase (8092) — explicit admin dashboard path
  • Fallback → static files (/var/www/dentist.promedic1.com/)
  The Node.js server authenticates as a PocketBase superuser, queries the activa
  tion_codes collection to validate license keys, and marks them as used upon su
  ccessful activation. Telegram notifications are dispatched similarly to the Ma
  ster1 proxy but scoped to dentist app events.
  Key Files:
  • /root/dentist-unified/server.js — Activation & notification API
  • /root/dentist-unified/index.html, app.js, *.js — Frontend and inline data
  • /var/www/dentist.promedic1.com/ — Production static mirror
  • /opt/dentist-pocketbase/pocketbase — Isolated PocketBase instance
  • /etc/caddy/sites/dentist.caddy — Domain routing rules
  ──────────────────────────────────────────────────────────────────────────────
  5.3 Outline Wiki (ui.master1.vip)
  Function: Team knowledge base and collaborative documentation platform.
  Stack:
  • App: Outline (Node.js/Next.js)
  • Database: PostgreSQL 14
  • Cache/Queue: Redis 6
  • Storage: Docker volumes (local filesystem)
  Architecture & Mechanism: Outline runs as a three-container Docker Compose sta
  ck defined in /root/logseq/docker-compose.yml. The Outline container depends o
  n PostgreSQL for persistent data and Redis for caching/session management. It
  exposes port 3100, which Caddy proxies for ui.master1.vip. Volumes are declare
  d as external (logseq_outline-data, logseq_postgres-data, logseq_redis-data),
  meaning they persist independently of the Compose project lifecycle.
  Key Files:
  • /root/logseq/docker-compose.yml
  • /etc/caddy/sites/ui.master1.vip.caddy
  ──────────────────────────────────────────────────────────────────────────────
  5.4 Activepieces (active.addict.mom)
  Function: Open-source no-code automation platform for building workflows (alte
  rnative to Zapier/Make).
  Stack:
  • App: Activepieces (Node.js)
  • Database: PostgreSQL 15 (Alpine)
  • Queue: Redis 7 (Alpine)
  • Execution: Sandboxed mode for security
  Architecture & Mechanism: Activepieces is deployed via Docker Compose in /opt/
  activepieces/. It runs in SANDBOXED execution mode, meaning workflow steps exe
  cute in isolated environments for security. The app container maps port 80 to
  host port 8080. Caddy handles TLS termination and proxies active.addict.mom to
  this internal port. Persistent data lives in /data/activepieces/storage/, Post
  greSQL data in /data/activepieces/postgres/, and Redis data in /data/activepie
  ces/redis/.
  Key Files:
  • /opt/activepieces/docker-compose.yml
  • /opt/activepieces/.env
  ──────────────────────────────────────────────────────────────────────────────
  5.5 Umami Analytics (umami.promedic1.com)
  Function: Privacy-focused, cookie-free web analytics.
  Stack:
  • App: Umami (Next.js)
  • Database: PostgreSQL 15 (Alpine)
  Architecture & Mechanism: Umami tracks page views and events without using coo
  kies, making it GDPR-friendly. It is a two-container Docker Compose stack. The
  app container maps internal port 3000 to host port 3003. A health check endpoi
  nt (/api/heartbeat) is used by both Docker and Caddy to verify availability.
  Key Files:
  • /root/umami/docker-compose.yml
  • /root/umami/.env
  ──────────────────────────────────────────────────────────────────────────────
  5.6 Listmonk Newsletter (listmonk.addict.mom)
  Function: Newsletter campaign management and mailing list administration.
  Stack:
  • App: Listmonk (Go)
  • Database: PostgreSQL 16 (Alpine)
  Architecture & Mechanism: Listmonk provides a self-hosted alternative to Mailc
  himp/SendGrid for newsletter management. It is deployed via Docker Compose in
  /root/listmonk/. Media uploads are persisted in ./data/uploads/ on the host, w
  hile the database uses ./data/postgres/. The app exposes port 9000 to the host
  , proxied by Caddy with standard security headers.
  Key Files:
  • /root/listmonk/docker-compose.yml
  • /root/listmonk/.env
  ──────────────────────────────────────────────────────────────────────────────
  5.7 Browserless Chrome (agent.addict.mom)
  Function: Headless Chrome-as-a-Service for web scraping, PDF generation, scree
  nshot capture, and browser automation.
  Stack:
  • App: Browserless Chrome (Puppeteer-based runtime)
  • Chrome Version: 121.0.6167.85
  Architecture & Mechanism: Browserless provides a pool of pre-booted Chrome ins
  tances accessible via HTTP/WebSocket on port 3000 (mapped to host 3006). It is
  configured with PREBOOT_CHROME=true for low-latency connections, limited to 2
  concurrent sessions with a max queue of 5. It runs with --no-sandbox and --dis
  able-dev-shm-usage flags suitable for containerized environments. The health c
  heck monitors memory usage to prevent OOM crashes.
  Key Files:
  • /root/browserless/docker-compose.yml
  ──────────────────────────────────────────────────────────────────────────────
  5.8 Monitoring & Observability Stack
  Function: Full-stack observability — metrics collection, log aggregation, aler
  ting, and visualization.
  Stack:
  • Metrics: Prometheus v3.3.1
  • Visualization: Grafana v12.4.0
  • Alerting: Alertmanager v0.28.0
  • Log Storage: VictoriaLogs v1.50.0
  • Log Collection: VLAgent v1.50.0
  • Container Metrics: cAdvisor v0.52.0
  • Host Metrics: Node Exporter v1.9.1
  Architecture & Mechanism: This is a seven-service Docker Compose network (moni
  toring-network). Prometheus scrapes metrics from itself, Node Exporter (hardwa
  re/OS metrics), and cAdvisor (container metrics). Grafana connects to Promethe
  us as a datasource for dashboards and to VictoriaLogs for log exploration.
  Log Pipeline: VLAgent tails host log files (/var/log/caddy/*.log, syslog, auth
  .log, watchdog.log) and pushes them to VictoriaLogs via its native insert API.
  This creates a centralized, queryable log store without requiring an agent on
  every service.
  Security: Prometheus and VictoriaLogs external access are protected by HTTP Ba
  sic Authentication configured in Caddy. Alertmanager handles routing of alerts
  generated by Prometheus rules.
  Key Files:
  • /root/monitoring/docker-compose.yml
  • /root/monitoring/prometheus/prometheus.yml
  • /root/monitoring/alertmanager/alertmanager.yml
  • /root/monitoring/grafana/provisioning/
  • /etc/caddy/sites/prometheus.promedic1.com.caddy
  • /etc/caddy/sites/analyzer.promedic1.com.caddy
  • /etc/caddy/sites/grafana.addict.mom.caddy
  ──────────────────────────────────────────────────────────────────────────────
  5.9 Activation Portal (activation.master1.vip)
  Function: License distribution and activation code management portal for Maste
  r1 and DentistPro products.
  Stack:
  • Frontend: Static HTML/CSS/JS
  • Backend APIs: PocketBase (main instance 8090, dentist instance 8092)
  Architecture & Mechanism: A lightweight static portal where Caddy serves files
  from /root/activation.master1/. The page includes client-side logic that calls
  PocketBase APIs. Caddy routes /api/dentist/* to the dentist PocketBase and /ap
  i/master1/* to the main PocketBase, allowing a single frontend to interact wit
  h two isolated backends.
  Key Files:
  • /root/activation.master1/index.html
  • /etc/caddy/sites/activation.master1.vip.caddy
  ──────────────────────────────────────────────────────────────────────────────
  5.10 Biology Exams (bio.master1.vip)
  Function: Dedicated biology examination static site with optional Node.js deve
  lopment server.
  Stack:
  • Frontend: Static HTML/CSS/JS
  • Dev Server: Node.js http module (port 8000)
  Architecture & Mechanism: Primarily a static SPA served by Caddy at bio.master
  1.vip. A simple Node.js server exists in /var/www/z-ai-apps/biology-exams/star
  t-server.js for local development, but production traffic is handled by Caddy'
  s file_server directive with immutable asset caching.
  Key Files:
  • /var/www/biology-exams/index.html
  • /var/www/z-ai-apps/biology-exams/start-server.js
  ──────────────────────────────────────────────────────────────────────────────
  5.11 Caddy Reverse Proxy
  Function: Unified edge proxy, TLS termination, static file serving, and reques
  t routing.
  Stack: Caddy v2 (Go)
  Architecture & Mechanism: Caddy is the central traffic control layer. It liste
  ns on 80/443, automatically provisions TLS certificates via Let's Encrypt (ACM
  E), enforces security headers (HSTS, CSP, X-Frame-Options), compresses respons
  es (gzip/zstd), and routes requests to the appropriate backend based on domain
  and path.
  Configuration is modular: the main Caddyfile imports all site definitions from
  /etc/caddy/sites/*.caddy. This allows per-application configuration isolation.
  Caddy also exposes an admin API on localhost:2019 for runtime configuration in
  spection.
  Key Files:
  • /etc/caddy/Caddyfile
  • /etc/caddy/sites/*.caddy
  • /var/log/caddy/*.log — Structured JSON access logs
  ──────────────────────────────────────────────────────────────────────────────
  5.12 Fail2Ban
  Function: Brute-force and intrusion prevention.
  Stack: Python / systemd
  Architecture & Mechanism: Fail2Ban monitors log files (SSH, Caddy, etc.) for s
  uspicious patterns and dynamically bans offending IP addresses using iptables/
  nftables. It runs as a systemd service and is a critical security layer for th
  e exposed SSH and HTTP endpoints.
  Key Files:
  • /etc/fail2ban/jail.local / jail.conf
  • /etc/fail2ban/filter.d/
  ──────────────────────────────────────────────────────────────────────────────
  6. Security Summary
   Layer       Implementation
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TLS         Automatic HTTPS via Caddy + Let's Encrypt
   Headers     HSTS, CSP, X-Frame-Options, X-Content-Type-Options on all sites
   Auth        Basic Auth on Prometheus & VictoriaLogs
   Network     All internal services bind to 127.0.0.1 only
   IPS         Fail2Ban active
   Execution   Activepieces runs in sandboxed mode
   Secrets     Stored in .env files (not exposed in this report)
  ──────────────────────────────────────────────────────────────────────────────
  This analysis was performed using read-only inspection of process lists, Docke
  r state, systemd units, Caddy configurations, and filesystem structures. No se
  rvices were disrupted.


  ========================================================
  --------------------------------------------------------
  ========================================================

  master1.vip configurations:

  2. Subdomain Records (optional)

Add Record
Subdomain
momtaz
Record Type
IP Address / Destination
149.102.150.185

Subdomain
the
Record Type
IP Address / Destination
149.102.150.185

Subdomain
backend
Record Type
IP Address / Destination
149.102.150.185

Subdomain
test
Record Type
IP Address / Destination
149.102.150.185

Subdomain
flow
Record Type
IP Address / Destination
31.97.122.87

Subdomain
exams
Record Type
IP Address / Destination
149.102.150.185

Subdomain
n8n
Record Type
IP Address / Destination
31.97.122.87

Subdomain
auto
Record Type
IP Address / Destination
31.97.122.87

Subdomain
coder
Record Type
IP Address / Destination
213.199.36.17

Subdomain
hostinger
Record Type
IP Address / Destination
31.97.122.87

Subdomain
zoro
Record Type
IP Address / Destination
149.102.150.185

Subdomain
my
Record Type
IP Address / Destination
149.102.150.185

Subdomain
super
Record Type
IP Address / Destination
149.102.150.185

Subdomain
hero
Record Type
IP Address / Destination
149.102.150.185

Subdomain
chem
Record Type
IP Address / Destination
149.102.150.185

Subdomain
bio
Record Type
IP Address / Destination
149.102.150.185

Subdomain
eng
Record Type
IP Address / Destination
149.102.150.185

Subdomain
study
Record Type
IP Address / Destination
149.102.150.185

Subdomain
momtaz1
Record Type
IP Address / Destination
149.102.150.185

Subdomain
ksa
Record Type
IP Address / Destination
149.102.150.185

Subdomain
qodrat
Record Type
IP Address / Destination
149.102.150.185

Subdomain
tahsily
Record Type
IP Address / Destination
149.102.150.185

Subdomain
webui
Record Type
IP Address / Destination
149.102.150.185

Subdomain
physics
Record Type
IP Address / Destination
149.102.150.185

Subdomain
chemistry
Record Type
IP Address / Destination
149.102.150.185

Subdomain
biology
Record Type
IP Address / Destination
149.102.150.185

Subdomain
math
Record Type
IP Address / Destination
149.102.150.185

Subdomain
arabic
Record Type
IP Address / Destination
149.102.150.185

Subdomain
english
Record Type
IP Address / Destination
149.102.150.185

Subdomain
marketing
Record Type
IP Address / Destination
213.199.36.17

Subdomain
teacher
Record Type
IP Address / Destination
149.102.150.185

Subdomain
api
Record Type
IP Address / Destination
149.102.150.185

Subdomain
ui
Record Type
IP Address / Destination
149.102.150.185

Subdomain
bank
Record Type
IP Address / Destination
149.102.150.185

Subdomain
school
Record Type
IP Address / Destination
213.199.36.17

Subdomain
www
Record Type
IP Address / Destination
149.102.150.185

Subdomain
french
Record Type
IP Address / Destination
149.102.150.185

Subdomain
maths
Record Type
IP Address / Destination
149.102.150.185

Subdomain
egypt
Record Type
IP Address / Destination
149.102.150.185

Subdomain
base
Record Type
IP Address / Destination
149.102.150.185

Subdomain
media
Record Type
IP Address / Destination
213.199.36.17

Subdomain
digital
Record Type
IP Address / Destination
213.199.36.17

Subdomain
ielts
Record Type
IP Address / Destination
149.102.150.185

Subdomain
share
Record Type
IP Address / Destination
149.102.150.185

Subdomain
pocketbase
Record Type
IP Address / Destination
149.102.150.185

Subdomain
machine
Record Type
IP Address / Destination
149.102.150.185

Subdomain
activation
Record Type
IP Address / Destination
149.102.150.185

Subdomain
diaa
Record Type
IP Address / Destination
31.97.122.87

Subdomain
mast
Record Type
IP Address / Destination
213.199.36.17

Subdomain
socioboard
Record Type
IP Address / Destination
213.199.36.17

Subdomain
analytics
Record Type
IP Address / Destination
213.199.36.17

Subdomain
agent
Record Type
IP Address / Destination
213.199.36.17

Subdomain
taybat
Record Type
IP Address / Destination
213.199.36.17

Subdomain
bot
Record Type
IP Address / Destination
213.199.36.17

Subdomain
analyzer
Record Type
IP Address / Destination
213.199.36.17

Subdomain
ollama
Record Type
IP Address / Destination
213.199.36.17

Subdomain
developer
Record Type
IP Address / Destination
213.199.36.17

Subdomain
taibaat
Record Type
IP Address / Destination
31.97.122.87

Subdomain
trial1
Record Type
IP Address / Destination
213.199.36.17

Subdomain
trial2
Record Type
IP Address / Destination
213.199.36.17

Subdomain
trial3
Record Type
IP Address / Destination
213.199.36.17

Subdomain
trial4
Record Type
IP Address / Destination
213.199.36.17

Subdomain
trial5
Record Type
IP Address / Destination
213.199.36.17

Subdomain
rag
Record Type
IP Address / Destination
213.199.36.17
==================================================================

